package agent;

import components.QuasiComponentCreate;
import components.QuasiComponentMessage;
import components.QuasiComponentLifeCycle;
import components.QuasiComponentCharacteristics;
import components.QuasiComponentRepresentations;
import components.QuasiComponentSkills;
import components.QuasiComponentBehavior;

public class FragmentAgent {

	private FragmentAgentMediator mediator;

	public FragmentAgent(QuasiComponentCreate _Create,
			QuasiComponentMessage _Message, QuasiComponentLifeCycle _LifeCycle,
			QuasiComponentCharacteristics _Characteristics,
			QuasiComponentRepresentations _Representations,
			QuasiComponentSkills _Skills, QuasiComponentBehavior _Behavior) {
		mediator = new FragmentAgentMediator(_Create, _Message, _LifeCycle,
				_Characteristics, _Representations, _Skills, _Behavior);
	}

	public void start() {
		mediator.start();
	}

	public java.util.ArrayList<tools.MMME> getRequiredMMME() {
		return mediator.getRequiredMMME();
	}

	public java.util.ArrayList<tools.MMME> getProvidedMMME() {
		return mediator.getProvidedMMME();
	}

	public void setRequiredMMMECharacteristics(tools.MMME mmme) {
		mediator.setRequiredMMMECharacteristics(mmme);
	}

	public void setProvidedMMMECharacteristics(tools.MMME mmme) {
		mediator.setProvidedMMMECharacteristics(mmme);
	}

	public java.util.ArrayList<tools.MMME> getRequiredMMMECharacteristics() {
		return mediator.getRequiredMMMECharacteristics();
	}

	public java.util.ArrayList<tools.MMME> getProvidedMMMECharacteristics() {
		return mediator.getProvidedMMMECharacteristics();
	}

	public void receive(impl.Message msg) {
		mediator.receive(msg);
	}

	public void cycle(impl.Message msg) {
		mediator.cycle(msg);
	}

	public void setCriticity(int stimulation) {
		mediator.setCriticity(stimulation);
	}

	public int getCriticity() {
		return mediator.getCriticity();
	}

	public int getProcessNumber() {
		return mediator.getProcessNumber();
	}

	public impl.AgentRef getId() {
		return mediator.getId();
	}

	public tools.Fragment myself() {
		return mediator.myself();
	}

	public impl.AgentRef create(impl.PatternMatchingCharacteristics c,
			impl.PatternMatchingBehavior beh) {
		return mediator.create(c, beh);
	}

	public java.util.Vector<java.lang.String> getRequiredElements() {
		return mediator.getRequiredElements();
	}

	public tools.FragmentState getMyState() {
		return mediator.getMyState();
	}

}
